-- transform_summon
-- Create by chengb Mar/15/2016
-- 技能: 怪物变身并召唤元素
-- 参数列说明：
-- prop[0] : prop_id
-- prop[1] : class_id 变身后的怪物编号
-- prop[2] : element  召唤出的元素编号
-- prop[3] : 起效回合

return {
    apply = function(source, target, skillId, round, para, extra)
        local classId = para[1];
        local element = para[2];

        -- 1、执行变身
        
        local targetPos = target:getPos();

        -- 先去掉DEBUFF
        PropM.deleteProp(target, "debuff");
        -- 清空负面状态
        CombatStatusM.clearStatusByType(target, COM_STATUS_DEBUFF);
        CombatStatusM.clearStatusByType(target, COM_STATUS_DAMAGE);

        AttribM.setAllDirty(target, true);

        MonsterM.dungeonMonsterTransform(target, classId, { ["layer"] = DungeonM.currentLayer()});

        -- 刷新属性
        PropM.refresh(target);

        -- 恢复最大血量
        target.dbase:set("hp", target:getHp());

        -- 抛出变身事件
        EventMgr.fire(event.MONSTER_TRANSFORM, {["pos"] = targetPos, ["class_id"] = classId, });

        -- 2、如果有空格，尝试召唤元素

        local arr = DungeonM.findEmptyGrids();

        -- 如果没有空位
        if #arr <= 0 then
            return;
        end

        local rand = DungeonM.getRandSeed("transform_summon");
        local pos = arr[rand % #arr + 1];

        -- 召唤一个怪物
        DungeonM.transGridToMonster(pos, element);
    end,

    parse = function(desc)
        local arr = string.explode(desc, ",");
        return { tonumber(arr[1]), tonumber(arr[2]), };
    end,

    -- 解析技能描述
    parseDesc = function(source, skillId, desc, para)
        return desc;
    end,
}

